Technote 1109

Optimizing QuickDraw3D 1.5.3 Applications For Maximum Performance


ñ⁄éü

ÇÕÇ∂ÇflÇ…

QD3D 1.5.3 ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ç≈çÇÇÃÉpÉtÉHÅ[É}ÉìÉXÇî≠äˆÇ≥ÇπÇÈç≈ìKâªÉeÉNÉjÉbÉN

3D ÉAÉNÉZÉâÉåÅ[É^ÇégǡǃÉpÉtÉHÅ[É}ÉìÉXå¸è„Ç≥ÇπÇÈï˚ñ@

óvñÒ


QuickDraw3D (QD3D) ÇÃÉhÉLÉÖÉÅÉìÉgÇ…ÇÕåfç⁄Ç≥ÇÍǃǢNjÇπÇÒÇ™ÅAÉfÉxÉçÉbÉpÇ™ QD3D ÇÃìTå^ìIÇ»ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉpÉtÉHÅ[É}ÉìÉXÇå¸è„Ç≥ÇπÇÈÉeÉNÉjÉbÉNÇÕÇΩÇ≠Ç≥ÇÒdžÇËÇ‹Ç∑ÅBDZÇà TECHNOTE Ç≈ÇÕÅAÉpÉtÉHÅ[É}ÉìÉXÇå¸è„Ç≥ÇπÇÈÉeÉNÉjÉbÉNÇê‡ñæÇµÇ‹Ç∑ÅBDZÇà TECHNOTE ÇÕÅA3D ÉOÉâÉtÉBÉbÉNÇÃäÓñ{íméØÇΔÅw3D Graphics Programming With QuickDraw 3DÅx(Addison-Wesley äß) DždžÇÈÇÊǧǻ QD3D ÇÃÉvÉçÉOÉâÉ~ÉìÉOíméØÇ™ëOíÒÇΔǻǡǃǢÇÈDZÇΔÇÇ≤óπè≥Ç≠ÇæÇ≥Ç¢ÅB


ÇÕÇ∂ÇflÇ…

3D É\ÉtÉgÉEÉFÉAÇÃÉfÉxÉçÉbÉpÇÕÅAã≠óÕÇ»ã@î\ÇÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…í«â¡Çµë±ÇØÇƒÇ¢Ç‹Ç∑ÅBÇΔDZÇÎÇ™ÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ï°éGÇ…Ç»ÇÈDžǵÇΩǙǡǃÅAëSëÃÇÃÉpÉtÉHÅ[É}ÉìÉXÇ™ã]êµÇ…Ç»ÇÈâ¬î\ê´Ç™èoǃǴNjǵÇΩÅBåªç›Çà QD3D ÇÃÉhÉLÉÖÉÅÉìÉgÇ…ÇÕÅAìTå^ìIÇ» QD3D ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ÉpÉtÉHÅ[É}ÉìÉXÇå¸è„Ç≥ÇπÇÈï˚ñ@Ç™ê‡ñæÇ≥ÇÍǃǢNjÇπÇÒÅBDZÇà TECHNOTE Ç≈ÇÕÅAǪÇÃï˚ñ@Çè–âÓǵNjÇ∑ÅB3D ÉAÉNÉZÉâÉåÅ[É^Ç™ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉpÉtÉHÅ[É}ÉìÉXÇ…ó^ǶÇÈå¯â Ç…ǬǢǃê‡ñæÇ‡çsǢNjÇ∑ÅB


QD3D 1.5.3 ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ç≈çÇÇÃÉpÉtÉHÅ[É}ÉìÉXÇî≠äˆÇ≥ÇπÇÈç≈ìKâªÉeÉNÉjÉbÉN

QD3D ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ©ÇÁç≈çÇÇÃÉpÉtÉHÅ[É}ÉìÉXÇà¯Ç´èoÇ∑ÇΩÇflÇ…ÅAÉfÉxÉçÉbÉpÇ…Ç≈Ç´ÇÈDZÇΔÇÕà»â∫ÇÃÇÊǧDžÇΩÇ≠Ç≥ÇÒdžÇËÇ‹Ç∑ÅB

ÉgÉâÉCÉÅÉbÉVÉÖÅEÉWÉIÉÅÉgÉäÇégópÇ∑ÇÈDZÇΔ

ÉgÉâÉCÉÅÉbÉVÉÖÇÃÉpÉtÉHÅ[É}ÉìÉX

ÉgÉâÉCÉÅÉbÉVÉÖÅEÉWÉIÉÅÉgÉäÇ™ç≈èâÇ…éÊÇËì¸ÇÍÇÁÇÍÇΩÇÃÇÕÅAQD3D 1.5 Ç≈Ç∑ (Philip Schneider éÅÇÃÅwdevelop 28: New QuickDraw3D GeometriesÅxÇΔ QD3D 1.5.3 SDK ÇÃÅuTrimesh.pdfÅvÇÃÉgÉâÉCÉÅÉbÉVÉÖÇÃê‡ñæÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢)ÅBQD3D 1.5.3 Ç≈ÇÕÅAÉCÉìÉ^ÉâÉNÉeÉBÉuÅEÉåÉìÉ_ÉâÇÃÉCÉ~Å[ÉfÉBÉGÉCÉgÅEÉÇÅ[ÉhÇ≈ÉgÉâÉCÉÅÉbÉVÉÖÇégópÇ∑ÇÈç€ÇÃÉpÉtÉHÅ[É}ÉìÉXÇÕîÒèÌÇ…óDÇÍǃǢNjÇ∑ÅBë¨ìxÇ…èdì_ÇíuÇ≠Ç»ÇÁÇŒÅAê‚ëŒÇ…ÉgÉâÉCÉÅÉbÉVÉÖÇÃégópÇåüì¢Ç∑ÇÈÇ◊Ç´Ç≈Ç∑ÅBópìrÇ…ÇÊǡǃÇÕëºÇà QD3D ÉWÉIÉÅÉgÉäÇ≈LJìØíˆìxÇ…ìÆçÏÇ∑ÇÈèÍçáLJdžÇËÇ‹Ç∑Ç™ÅAë¨ìxÇè„Ç∞ÇΩÇ¢èÍçáÇÕÅAÉgÉâÉCÉÅÉbÉVÉÖÇçÃópǵǃÇ≠ÇæÇ≥Ç¢ÅBQD3D ÇÃè´óàÇÃÉoÅ[ÉWÉáÉìÇ≈ÇÕÅAëºÇÃÉWÉIÉÅÉgÉäÇÃÉpÉtÉHÅ[É}ÉìÉXLJâ¸ëPÇ≥ÇÍÇÈó\íËÇ≈Ç∑ÅB

ǪǵǃÅAÉgÉâÉCÉÅÉbÉVÉÖÇégópǵǃç≈çÇÇÃÉpÉtÉHÅ[É}ÉìÉXÇî≠äˆÇ≥ÇπÇÈÇ…ÇÕÅAê≥ǵǢï˚ñ@Ç≈égópǵǃÇ≠ÇæÇ≥Ç¢ÅBãêëÂÇ»ÉgÉâÉCÉÅÉbÉVÉÖÇçÏê¨ÇµÇƒ 10 ÇÃàŸÇ»ÇÈÉeÉNÉXÉ`ÉÉëÆê´ÇéùÇΩÇπÇÈÇÊǧǻDZÇΔÇǵǃÇÕÇ¢ÇØÇ‹ÇπÇÒÅBǪÇÍÇ≈ÇÕìÆÇ´Ç‹ÇπÇÒ (éüÇÃÉZÉNÉVÉáÉìÇÃÉgÉâÉCÉÅÉbÉVÉÖÅEÉIÉuÉWÉFÉNÉgÇÃÉ}ÉeÉäÉAÉãÇÃê‡ñæÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢)ÅB

1 ǬÇÃÉgÉâÉCÉÅÉbÉVÉÖÅEÉIÉuÉWÉFÉNÉgÇ…égópÇ∑ÇÈÉeÉNÉXÉ`ÉÉÇÕ 1 Ç¬ÇæÇØÇ…Ç∑ÇÈDZÇΔ

àÍî Ç…ÅAÉgÉâÉCÉÅÉbÉVÉÖÅEÉIÉuÉWÉFÉNÉgÇ…égǧÉeÉNÉXÉ`ÉÉÇ 1 Ç¬ÇæÇØÇ…Ç∑ÇÈÇΔÅAÉpÉtÉHÅ[É}ÉìÉXÇ™è„Ç™ÇËÇ‹Ç∑ÅBÉeÉNÉXÉ`ÉÉëÆê´ÇÕÉgÉâÉCÉÅÉbÉVÉÖÉfÅ[É^Çà triMeshAttributeSet Ç…íuǢǃÇ≠ÇæÇ≥Ç¢ÅBéOäpå`Ç‚í∏ì_Çà 1 Ǭ 1 ǬDžÉeÉNÉXÉ`ÉÉÇê›íËǵǃÇÕÇ¢ÇØÇ‹ÇπÇÒÅB

ÉgÉâÉCÉÅÉbÉVÉÖÇ…ÉoÉEÉìÉfÉBÉìÉOÉ{ÉbÉNÉXÇê›íËÇ∑ÇÈDZÇΔ

ÉgÉâÉCÉÅÉbÉVÉÖÅEÉWÉIÉÅÉgÉäÇ…ÇÕÅAÉNÉäÉbÉsÉìÉOÇ‚ÉJÉäÉìÉOÇÃë¨ìxÇè„Ç∞ÇÈÇΩÇflÇ…ÅAÉIÉvÉVÉáÉìÇÃÉoÉEÉìÉfÉBÉìÉOÉ{ÉbÉNÉXÅEÉpÉâÉÅÅ[É^ǙdžÇËÇ‹Ç∑ (TQ3TriMeshData ÉfÅ[É^ç\ë¢ëÃÇà bBox ÉpÉâÉÅÅ[É^ÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢)ÅBÉpÉtÉHÅ[É}ÉìÉXÇå¸è„Ç≥ÇπÇÈÇ…ÇÕÅAÉgÉâÉCÉÅÉbÉVÉÖÅEÉWÉIÉÅÉgÉäÇÃçÏê¨Ç≈ÉoÉEÉìÉfÉBÉìÉOÉ{ÉbÉNÉXÇéwíËǵǃÇ≠ÇæÇ≥Ç¢ (ÉoÉEÉìÉfÉBÉìÉOÉ{ÉbÉNÉXÇÃéwíËÇê≥ǵÇ≠çsÇÌǻǢÇΔÉNÉâÉbÉVÉÖÇ∑ÇÈèÍçáǙdžÇËÇ‹Ç∑ÇÃÇ≈íçà”ǵǃÇ≠ÇæÇ≥Ç¢)ÅB


í∏ì_ëÆê´ÇÕÉmÅ[É}ÉãÇ®ÇÊÇ— UV ç¿ïWÇÃÇ›ÇópÇ¢ÇÈDZÇΔ


ÉpÉtÉHÅ[É}ÉìÉXÇå¸è„Ç≥ÇπÇΩÇØÇÍÇŒÅAÉIÉuÉWÉFÉNÉgÇ…ê›íËÇ∑ÇÈÇÃÇÕéüÇÃí∏ì_ëÆê´ÇæÇØÇ…ǵǃÇ≠ÇæÇ≥Ç¢ÅBǪÇÍÇÕÅAÉmÅ[É}Éã (kQ3AttributeTypeNormal) ÇΔ UV ç¿ïW (kQ3AttributeTypeSurfaceUV Ç®ÇÊÇ— kQ3AttributeTypeShadingUV) Ç≈Ç∑ÅB

Ç≈Ç´ÇÈÇæÇØëΩÇ≠ÇÃí∏ì_ÇçƒóòópÇ∑ÇÈDZÇΔ

Ç≈Ç´ÇÈÇæÇØëΩÇ≠ÇÃí∏ì_ÇçƒóòópǵǃÇ≠ÇæÇ≥Ç¢ÅBèdï°ÇµÇΩç¿ïWÇéùǬí∏ì_Ç…ÇÕï ÅXÇÃÉmÅ[É}ÉãÇ™äÑÇËìñǃÇÁÇÍÅAñ≥ë Ç»í∏ì_ÇëùÇ‚Ç∑DZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅBDZÇÃÇÊǧǻèÍçáÇÕÅAÉmÅ[É}ÉãÇïΩãœâªÇµÇƒÉ_ÉuÉäÇéÊÇÈï˚ñ@ǙdžÇËÇ‹Ç∑ÅBDZǧÇ∑ÇÈÇΔÅAÉWÉIÉÅÉgÉäÇÃï\ñ Ç™ïΩíRÇ…ÇÕÇ»ÇËÇ‹Ç∑Ç™ÅAé¿çsë¨ìxÇÕè„Ç™ÇËÇ‹Ç∑ÅB


éOäpå`Ç‚ñ ÇÃëÆê´Ç…ÇÕÉtÉFÉCÉXÉmÅ[É}ÉãÇégópÇ∑ÇÈDZÇΔ

QD3D 1.5.3 ÇÃåªçsÉoÅ[ÉWÉáÉìÇ≈ÇÕÅAí èÌÇÕéOäpå`Ç‚ñ ÇÃëÆê´Ç…ÇÕÉtÉFÉCÉXÉmÅ[É}ÉãÇégópÇ∑ÇÈÇÃÇ™ÇÊÇ¢Ç≈Ç∑Ç™ÅAǪǧǵǻǢǟǧǙÇÊÇ¢èÍçáLJdžÇËÇ‹Ç∑ÅBÉtÉFÉCÉXÉmÅ[É}ÉãÇéwíËǵǻǢÇΔÅAQD3D ÇÕÉåÉìÉ_ÉäÉìÉOÇÃÇΩÇ—Ç…ñ ÇÃåvéZÇçsǧDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅBÉmÅ[É}ÉãÇÃåvéZÇÕíxÇ¢ÇÃÇ≈ÅAÇΩǢǃǢÇÃèÍçá QD3D ÇÃë¨ìxÇÕóéÇøÇ‹Ç∑ÅBǵǩǵÅAÉfÅ[É^ó Ç™ëΩÇ≠ÅAÉmÅ[É}ÉãÇÃîzóÒÇ™ÉåÉìÉ_ÉäÉìÉOÇÃä‘ÅAL1 Ç‹ÇΩÇÕ L2 ÉLÉÉÉbÉVÉÖÇ…íuÇ©ÇÍÇÈDZÇΔǙǻǢèÍçáÇÕÅAǩǶǡǃÉtÉFÉCÉXÉmÅ[É}ÉãÇéwíËǵǻǢï˚Ç™ë¨Ç¢èÍçáLJdžÇËÇ‹Ç∑ÅB


ÉLÉÉÉbÉVÉÖÉ~ÉXÇ™ãNDZÇÈÇΔÅAQD3D Ç…ÉmÅ[É}ÉãÇçƒåvéZÇ≥ÇπÇÈÇÊÇËLJÅAëΩÇ≠ÇÃéûä‘ǙǩǩǡǃǵNjǢNjÇ∑ÅBÇΩǢǃǢÇÃèÍçáÇÕÉtÉFÅ[ÉXÉmÅ[É}ÉãÇéwíËÇ∑ÇÈÇÃÇ™ÇÊÇ¢ÇÃÇ≈Ç∑Ç™ÅAÉeÉXÉgÇçsǡǃÅAéwíËǵǻǢï˚Ç™ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃé¿çsÇ™ë¨Ç¢Ç©Ç«Ç§Ç©í≤Ç◊NjǵÇÂǧÅB

Ç‹ÇΩÅAäeéOäpå`ÇÃí∏ì_ÇéûåvâÒÇËÇÃãtèáÇ…ï€ä«Ç∑ÇÈÇÃÇ™àÍî‘Ç≈Ç∑ÅBè⁄ç◊DžǬǢǃÇÕÅAQD3D 1.5.3 SDK ÇÃÅuTrimesh.pdfÅvÉhÉLÉÖÉÅÉìÉgÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

ÉIÉuÉWÉFÉNÉgÇÃÉJÉäÉìÉOÇìΔé©Ç…çsǧDZÇΔ

ÉIÉuÉWÉFÉNÉgÇÃÉJÉäÉìÉOÇìΔé©ÇÃï˚ñ@Ç≈çsǧDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅBQD3D ÇÕÉoÉEÉìÉfÉBÉìÉOÉ{ÉbÉNÉXÇópǢǃÉIÉuÉWÉFÉNÉgÇÃÉJÉäÉìÉOÇçsǢNjÇ∑ÅBDZÇÃï˚ñ@ÇÕǩǻÇËê≥ämÇ≈ÅAQD3D ÇÃÇÊǧǻîƒópÉâÉCÉuÉâÉäÇ™éÊÇÈDZÇΔÇÃÇ≈Ç´ÇÈóBàÍÇÃï˚ñ@Ç≈Ç∑Ç™ÅAǵǩǵîÒèÌÇ…íxÇ¢ï˚ñ@Ç≈Ç∑ÅBãÖèÛÇÃÉJÉäÉìÉOÇçsǧìΔé©ÇÃä÷êîÇçÏê¨Ç∑ÇÈÇÃÇ™ÇÊÇ¢Ç≈ǵÇÂǧÅB


Ç‹ÇΩìKêÿÇ»èÍçáÇ…ÇÕÅAï¬Ç∂ÇΩÉIÉuÉWÉFÉNÉgÇÃÉoÉbÉNÉtÉFÅ[ÉXÅEÉJÉäÉìÉOÇégǡǃÇ≠ÇæÇ≥Ç¢ÅBDZÇÃÉåÉìÉ_ÉäÉìÉOï˚éÆÇÕëºÇÃÉoÉbÉNÉtÉFÅ[ÉXÅEÉXÉ^ÉCÉã (è⁄ç◊DžǬǢǃÇÕÅAÅw3D Graphics Programming With QuickDraw 3DÅxÇÃëÊ 6 èÕÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢) ÇÊÇËLJǩǻÇËë¨Ç¢Ç©ÇÁÇ≈Ç∑ÅB

ÉåÉìÉ_ÉäÉìÉOíÜÇÕëºÇÃèàóùÇç≈è¨å¿Ç…ó}ǶÇÈDZÇΔ

ÉåÉìÉ_ÉäÉìÉOíÜÇ…ÅAÉVÅ[ÉìÇÃÉèÉCÉÑÉtÉåÅ[ÉÄÅEÉrÉÖÅ[Çï ÇÃÉEÉCÉìÉhÉEÇ…ï`Ç¢ÇΩÇËÅAÉWÉIÉÅÉgÉäÇÃç¿ïWÇçXêVǵÇΩÇËÅAQD3D à»äOÇÃç\ë¢ëÃÇçXêVÇ∑ÇÈǻǫÅAëºÇÃçÏãΔÇçsǧÉAÉvÉäÉPÅ[ÉVÉáÉìǙdžÇËÇ‹Ç∑ÅBDZǧǵÇΩèàóùÇÕÇ∑Ç◊ǃÉåÉìÉ_ÉäÉìÉOÇ…âeãøÇó^ǶÇÈâ¬î\ê´Ç™Ç†ÇËÇ‹Ç∑ÅBÉåÉìÉ_ÉäÉìÉOÇÃç€Ç…DZǧǵÇΩèàóùÇ…îÔÇ‚Ç∑éûä‘Çå∏ÇÁÇπÇŒÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉpÉtÉHÅ[É}ÉìÉXÇÕâ¸ëPÇ≥ÇÍÇ‹Ç∑ÅB

ÉoÉbÉNÉOÉâÉEÉìÉhÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ó^ǶÇÈéûä‘Çç≈è¨å¿Ç…Ç∑ÇÈDZÇΔ

ëΩÇ≠ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ÅAÉåÉìÉ_ÉäÉìÉOíÜDžLJǩǩÇÌÇÁÇ∏ÅAÉoÉbÉNÉOÉâÉEÉìÉhÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ… (WaitNextEvent ä÷êîÇégǡǃ) éûä‘Çó^ǶâflǨǃǢNjÇ∑ÅBDZÇÃèÛë‘Ç≈ÇÕÅAÇ«ÇÒÇ» QD3D ÉAÉNÉZÉâÉåÅ[ÉVÉáÉìÇégǮǧÇΔLJÅAÉåÉìÉ_ÉäÉìÉOíÜÇÃçƒï`âÊÇÃä‘Ç…ÇÕïKÇ∏ãÛÇ´éûä‘Ç™ê∂Ç∂ǃǵNjǢNjÇ∑ÅBÉoÉbÉNÉOÉâÉEÉìÉhÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ó^ǶÇÈéûä‘Çç≈è¨å¿Ç…Ç≈Ç´ÇÍÇŒÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃë¨ìxÇÕëÂïùÇ…â¸ëPÇ≥ÇÍÇ‹Ç∑ÅB

ÉOÉãÅ[ÉvÉIÉuÉWÉFÉNÉgÇégópÇ∑ÇÈç€Ç…ÇÕíçà”Ç∑ÇÈDZÇΔ

QD3D ÇÃÉOÉãÅ[ÉvÉIÉuÉWÉFÉNÉgÇÕÉIÉuÉWÉFÉNÉgÇÃï€ä«ÇΔä«óùÇ…ï÷óòÇ»ã@î\Ç≈Ç∑ÅBǵǩǵÅAäeÉOÉãÅ[ÉvÇ™é¿çséûÇ…ÉOÉâÉtÉBÉbÉNÉXÅEÉXÉeÅ[ÉgÇÃÉvÉbÉVÉÖÇΔÉ|ÉbÉvÇçsǧDZÇΔÇ…ãCÇ√ǢǃǢǻǢÉfÉxÉçÉbÉpÇ™ÇΩÇ≠Ç≥ÇÒǢNjÇ∑ÅBÇΔǢǧÇÃÇÕÅAÉOÉãÅ[ÉvÇÃÉCÉìÉâÉCÉìÉtÉâÉO (kQ3DisplayGroupStateMaskIsInline) Ç™ÉfÉtÉHÉãÉgÇ≈ÇÕÉIÉtÇæÇ©ÇÁÇ≈Ç∑ (è⁄ç◊DžǬǢǃÇÕÅAÅw3D Graphics Programming With QuickDraw 3DÅxÇÃëÊ 10 èÕÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢)ÅBÉOÉãÅ[ÉvÉIÉuÉWÉFÉNÉgÇ≤ÇΔÇ…ÉOÉâÉtÉBÉbÉNÉXÅEÉXÉeÅ[ÉgÇÃÉvÉbÉVÉÖÇΔÉ|ÉbÉvÇ™é¿çséûÇ…ãNDZÇÈDZÇΔÇ…Ç»ÇËÅAÉpÉtÉHÅ[É}ÉìÉXDžǩǻÇËà´âeãøÇó^ǶNjÇ∑ÅB

ÉOÉâÉtÉBÉbÉNÉXÅEÉXÉeÅ[ÉgÇÃÉvÉbÉVÉÖÇΔÉ|ÉbÉvÇé©ï™Ç≈çsǧïKóvǙdžÇÈèÍçáÇÕÅAQ3Push_Submit ÇΔ Q3Pop_Submit ä÷êîÇégópǵǃÇ≠ÇæÇ≥Ç¢ÅBëÂó ÇÃÉIÉuÉWÉFÉNÉgÇÃä«óùÇÅAìΔé©ÇÃÉfÅ[É^ç\ë¢ëÃÇçÏê¨ÇµÇƒçsǧï˚ñ@LJdžÇËÇ‹Ç∑ÅB

ÉäÉeÉCÉìÅEÉÇÅ[ÉhÇΔÉCÉ~Å[ÉfÉBÉGÉCÉgÅEÉÇÅ[Éh

ópìrÇ…ÇÊǡǃÇÕÅAÉCÉ~Å[ÉfÉBÉGÉCÉgÅEÉÇÅ[Éh (ë¶éûÉÇÅ[Éh) Çégǧï˚Ç™ÉäÉeÉCÉìÅEÉÇÅ[Éh (ï€éùÉÇÅ[Éh) ÇégǧÇÊÇËLJë¨Ç¢Ç±ÇΔǙdžÇËÇ‹Ç∑ÅBó·Ç¶ÇŒÅAå≈íËÇÃÉTÉuÉfÉBÉrÉWÉáÉìÅEÉXÉ^ÉCÉãåQÇéùǬÅAãÖÇ‹ÇΩÇÕâ~êçÇÃÉWÉIÉÅÉgÉäÇàµÇ§èÍçáÅAǮǪÇÁÇ≠ÉCÉ~Å[ÉfÉBÉGÉCÉgÅEÉÇÅ[ÉhÇégÇ¡ÇΩï˚Ç™ÉpÉtÉHÅ[É}ÉìÉXÇ™è„Ç™ÇËÇ‹Ç∑ÅB

Ç«ÇøÇÁÇÃÉÇÅ[ÉhÇ™ìKǵǃǢÇÈÇ©ÇÕé¿ç€Ç…ééǵǃǛÇÈïKóvǙdžÇËÇ‹Ç∑ÅBïÅí ÅAÉÇÉfÉãÇÃëÂïîï™Ç™ÉtÉåÅ[ÉÄÇ≤ÇΔÇ…ïœâªÇµÇ»Ç¢èÍçáÇÕÅAÉÇÉfÉãÇÃçÏê¨ÇΔï`âÊÇ…ÉäÉeÉCÉìÅEÉÇÅ[ÉhÇÃÉCÉÅÅ[ÉWÉìÉOÇégǧÇÃÇ™ÇÊÇ¢Ç≈ǵÇÂǧÅBǵǩǵÅAÉÇÉfÉãÇÃëΩÇ≠ÇÃïîï™Ç™ÉtÉåÅ[ÉÄÇ≤ÇΔÇ…ïœâªÇ∑ÇÈèÍçáÇÕÅAÉCÉ~Å[ÉfÉBÉGÉCÉgÅEÉÇÅ[ÉhÇÃÉCÉÅÅ[ÉWÉìÉOÇégópǵÅAÉÇÉfÉãÇÉVÉFÉCÉvíPà Ç≈çÏê¨ÇµÉåÉìÉ_ÉäÉìÉOÇ∑ÇÈÇÃÇ™ÇÊÇ¢Ç≈ǵÇÂǧÅBÇ‡ÇøÇÎÇÒÅAÉäÉeÉCÉìÅEÉÇÅ[ÉhÇΔÉCÉ~Å[ÉfÉBÉGÉCÉgÅEÉÇÅ[ÉhÇÃÉCÉÅÅ[ÉWÉìÉOÇëgÇ›çáÇÌÇπǃégǧDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅBǬNjÇËÅAÉÇÉfÉãÇÃê√ìIïîï™Ç…ÇÕÉäÉeÉCÉìÅEÉÇÅ[ÉhÇÃÉIÉuÉWÉFÉNÉgÇçÏê¨ÇµÅAïpî…Ç…ïœâªÇ∑ÇÈÉIÉuÉWÉFÉNÉgÇÕÉCÉ~Å[ÉfÉBÉGÉCÉgÅEÉÇÅ[ÉhÇ≈ï`âÊÇ∑ÇÈÇÌÇØÇ≈Ç∑ÅBÉäÉeÉCÉìÅEÉÇÅ[ÉhÇΔÉCÉ~Å[ÉfÉBÉGÉCÉgÅEÉÇÅ[ÉhÇÃê‡ñæÇ…ǬǢǃÇÕÅAÅw3D Graphics Programming With QuickDraw3DÅxÇÃëÊ 1 èÕÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

ïKóvÇ»èÍçáà»äOÇÕ Q3View_Sync Ç‚ TQ3ViewEndFrameMethod ÇégÇÌǻǢDZÇΔ

ÉCÉìÉ^ÉâÉNÉeÉBÉuÉåÉìÉ_ÉâÇÃégópíÜÇÕÅAQ3View_Sync Ç‚ TQ3ViewEndFrameMethod ä÷êîÇÕÅAïKóvÇ»èÍçáà»äOÇÕê‚ëŒÇ…égÇÌǻǢÇ≈Ç≠ÇæÇ≥Ç¢ÅBDZÇÍÇÁÇÃä÷êîÇÕÉåÉìÉ_ÉâÇìØä˙ÉÇÅ[ÉhDžǵǃǵNjǢNjÇ∑ÅBǪÇÃÇÊǧǻä÷êîÇégǧDZÇΔÇÕîÇØÇƒÇ≠ÇæÇ≥Ç¢ÅBǪÇÃï˚Ç™ÉpÉtÉHÅ[É}ÉìÉXÇ™Ç∑ÇÆÇÍǃǢNjÇ∑ÅB


3D ÉAÉNÉZÉâÉåÅ[É^ÇégǡǃÉpÉtÉHÅ[É}ÉìÉXå¸è„Ç≥ÇπÇÈï˚ñ@

QD3D ÇÉTÉ|Å[ÉgÇ∑ÇÈ 3D ÉOÉâÉtÉBÉbÉNÉXÅEÉAÉNÉZÉâÉåÅ[É^É{Å[ÉhÇ™ç≈ãflëùǶǃǴNjǵÇΩÅBDZǧǵÇΩÉAÉNÉZÉâÉåÅ[É^ÇÕÇŸÇΔÇÒÇ«Çà QD3D ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉpÉtÉHÅ[É}ÉìÉXLJâ¸ëPÇ∑ÇÈÇÊǧê›åvÇ≥ÇÍǃǢNjÇ∑ÅBÇΔDZÇÎÇ™ÅAÉfÉxÉçÉbÉpÇÕé©ï™ÇÃÉVÉXÉeÉÄDžDZǧǵÇΩÉ{Å[ÉhÇÉCÉìÉXÉgÅ[ÉãǵǃLJÅAdžNjÇËÉpÉtÉHÅ[É}ÉìÉXÇ™è„Ç™ÇÁǻǢDZÇΔÇ…é∏ñ]Ç∑ÇÈDZÇΔÇ™ëΩÇ¢ÇÊǧÇ≈Ç∑ÅBDZÇÃóùóRÇà 1 ǬÇÕÅADZÇÍÇ‹Ç≈ÇÃÉZÉNÉVÉáÉìÇ≈ê‡ñæÇµÇƒÇ´ÇΩÅAQD3D ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ç≈ëÂÇÃÉpÉtÉHÅ[É}ÉìÉXÇî≠äˆÇ∑ÇÈÇΩÇflÇÃÉeÉNÉjÉbÉNÇégǡǃǢǻǢÉfÉxÉçÉbÉpÇ™ëΩǢǩÇÁÇ≈Ç∑ÅB

3D ÉAÉNÉZÉâÉåÅ[É^ÇÃê´î\ÇçlǶÇÈç€ÅAÇŸÇΔÇÒÇ«ÇÃÉJÅ[ÉhÇ™â¸ëPÇ∑ÇÈÇÃÇÕÅA3D ÉOÉâÉtÉBÉbÉNÉXÇÃÉâÉXÉ^èàóùÇ≈džÇÈDZÇΔÇóùâÇ∑ÇÈÇÃÇ™ëÂêÿÇ≈Ç∑ÅBÇ≤ë∂Ç∂ÇÃí ÇËÅAÉâÉXÉ^èàóùÇÕÉåÉìÉ_ÉäÉìÉOçHíˆÇà (í èÌÅAç≈å„ÇÃï˚ÇÃ) ÉvÉçÉZÉXÇà 1 ǬÇ≈Ç∑ÅBǬNjÇËÅAÉvÉçÉOÉâÉÄÇ≈ÅANURB ÉWÉIÉÅÉgÉäÇÃÇÊǧǻåvéZÇÃïââ◊Ç™çÇÇ¢ÉWÉIÉÅÉgÉäÇégópǵǃǢǃÅAëºÇÃèàóùÇÃÉRÅ[ÉhÇ‚ÉWÉIÉÅÉgÉäÇÃåvéZÇ…ëΩëÂÇ»éûä‘ÇîÔǂǵǃǢÇÈèÍçáÇÕÅAÉAÉNÉZÉâÉåÅ[É^Ç™Åuë¶ç¿Ç…ÅvëΩäpå`ÇÉåÉìÉ_ÉäÉìÉOǵǃLJÅAÉvÉçÉOÉâÉÄëSëÃÇΔǵǃÇÕdžNjÇËÉXÉsÅ[ÉhÇ™å¸è„ǵNjÇπÇÒÅB

Ç‹ÇΩÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÅAÉWÉIÉÅÉgÉäÅAèàóùÇÃï°éGÇ≥Ç™àÍíËÇÃÉ|ÉCÉìÉgÇ…íBÇ∑ÇÈÇΔÅAÉ\ÉtÉgÉEÉFÉAÇÃÉåÉìÉ_ÉâÅ[ÇégópǵǃLJÅA3D ÉAÉNÉZÉâÉåÅ[É^ÇégópǵǃLJÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉpÉtÉHÅ[É}ÉìÉXÇ™ìØÇ∂DžǻǡǃǵNjǧèÍçáǙdžÇËÇ‹Ç∑ÅBÉfÉxÉçÉbÉpÇÕÉeÉXÉgÇçsǡǃÅADZÇÃÉgÉåÅ[ÉhÉIÉtÇ™ãNDZÇÈÉ|ÉCÉìÉgÇå©ã…ÇflǃÇ≠ÇæÇ≥Ç¢ÅB

ó·Ç¶ÇŒÅAçÇïiéøÇà (ÉgÉâÉCÉäÉjÉAÅEÉ~ÉbÉvÉ}ÉbÉv) ÉeÉNÉXÉ`ÉÉì\ÇËïtÇØÅAìßâflÅACSG ÉIÉyÉåÅ[ÉVÉáÉìǻǫÇí«â¡ÇµÇƒÅAÉâÉXÉ^èàóùÇÅuèdÇ≠ÅvǵÇΩèÍçáÅAÉ\ÉtÉgÉEÉFÉAÉåÉìÉ_ÉâÇégópÇ∑ÇÈèÍçáÇΔî‰ärÇ∑ÇÈÇΔÅAÉpÉtÉHÅ[É}ÉìÉXÇΔïiéøÇ™ëÂïùÇ…å¸è„ǵNjÇ∑ (Ç‡ÇøÇÎÇÒÅADZÇÍÇÕégópÇ∑ÇÈ 3D ÉAÉNÉZÉâÉåÅ[É^ÉJÅ[ÉhÇ…ÇÊǡǃLJà·Ç¢Ç‹Ç∑)ÅB3D ÉAÉNÉZÉâÉåÅ[É^ÉJÅ[ÉhÇç≈ëÂå¿Ç…óòópÇ∑ÇÈÇ…ÇÕÅAÉJÅ[Éhå≈óLÇÃã@î\ÇóòópÇ≈Ç´ÇÈÇÊǧDžÉAÉvÉäÉPÅ[ÉVÉáÉìÇèCê≥Ç∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB

ÇŸÇΔÇÒÇ«ÇÃÉJÅ[ÉhÇÕÅAíˆìxDZǪà·Ç¶ÅAQD3D ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃë¨ìxÇå¸è„Ç≥ÇπÅAǵnjǵnjÉeÉNÉXÉ`ÉÉÇÃäOäœÇǩǻÇËâ¸ëPǵNjÇ∑ÅBǵǩǵÅAîƒópÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ÉVÅ[ÉìÇ≈ê∂ê¨Ç∑ÇÈLJÇÃÇÇ∑Ç◊ǃìKêÿÇ…èàóùÇ≈Ç´ÇÈÇÌÇØÇ≈ÇÕÇ»Ç≠ÅAê´î\å¸è„Ç™ìæÇÁÇÍǻǢèÍçáLJdžÇËÇ‹Ç∑ÅB


óvñÒ

à»è„ÇÃÉKÉCÉhÉâÉCÉìDžǵÇΩǙǶnjÅAëÂïùÇ… QD3D ÇÃÉpÉtÉHÅ[É}ÉìÉXÇå¸è„Ç≥ÇπÇÈDZÇΔÇ™Ç≈Ç´ÇÈÇ≈ǵÇÂǧÅBã^ÇÌǵǢÇΔévÇ¡ÇΩÇËÅAè„ãLÇÃÉeÉNÉjÉbÉNÇ≈Ç«ÇÃíˆìxÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃë¨ìxÇ™è„Ç™ÇÈÇÃÇ©ÇímÇËÇΩÇ¢ï˚Ç…ÇÕÅAPangea Software (http://www.realtime.net/~pangea) ÇÃÅu3DMF OptimizerÅvÇΔǢǧêªïiǙdžÇËÇ‹Ç∑ÅBDZÇÃêªïiÇÕÅADZDZÇ≈ê‡ñæÇµÇΩëΩÇ≠ÇÃÉeÉNÉjÉbÉNÇégÇ¢ÅAÉAÉvÉäÉPÅ[ÉVÉáÉìë¨ìxÇÃëÂïùÇ»å¸è„Çâ ÇΩǵǃǢNjÇ∑ÅB3DMF Optimizer ÇÃÉfÉÇî≈Ç™è„ãLÇà URL Ç≈ì¸éËâ¬î\Ç≈Ç∑ÅB

éQçlï∂å£
Åw3D Graphics Programming With QuickDraw 3DÅx(Addison-Wesley äß)
Åwdevelop 28: New QuickDraw3D GeometriesÅx(Philip Schneider éÅ)
Pangea Software é–ÇÃÅu3D OptimizerÅv

çXêVì˙: 1997 îN 10 åé 31 ì˙